﻿#pragma once

#include "zyRes.hpp"

namespace BlackMoonUI {

	class zyLmageList : public  zyRes
	{
	public:
		zyLmageList();
		~zyLmageList();
		HIMAGELIST 取句柄();
		void 置句柄(HIMAGELIST him);
		void 销毁();
		//@别名 创建(参数_图片宽度,参数_图片高度,参数_创建标志,参数_初始图片数量)
		bool Create(int cx, int cy, UINT flags = 0, int initial = 0);
		bool 创建自字节集(byte* 参数_图片组字节集, int 参数_图片组字节集大小, bool 参数_是否易语言格式 = true);
		bool 创建自位图文件(const std::wstring& 参数_文件名, int 参数_宽度, int 参数_图标数, int 参数_掩码色 = -1);
		int 添加图标(zyIcon& 参数_图标);
		int 添加图标句柄(HICON 参数_图标句柄);
		int 添加文件W(byte* 参数_文件名, int 参数_文件名长度, int 参数_文件格式 = 0, bool 参数_自动分割 = false);
		int 添加文件(const std::wstring& 参数_文件名, int 参数_文件格式 = 0, bool 参数_自动分割 = false);

		bool 复制(zyLmageList& 参数_目标图片组, int 参数_目标图片索引, int 参数_源图片索引, int 参数_复制标记);
		zyLmageList 克隆();
		HIMAGELIST 克隆句柄();

		bool 替换图标(int 参数_被替换图标索引, zyIcon& 参数_图标);

		bool  删除(int 参数_索引);
		int  取背景色();
		int  置背景色(int 参数_颜色值);
		zyIcon 取图标(int 参数_图片索引, int 参数_标志);

		POINT 取图标尺寸();
		bool 置图标尺寸(int 参数_宽度, int 参数_高度);
		int 取图标数();
		bool 置图标数(int 参数_数量);
		bool 取图片信息(int 参数_图片索引, IMAGEINFO* 参数_图片信息);
		bool 画图标Ex(int 参数_图片索引, HDC 参数_hdc, int 参数_横坐标, int 参数_纵坐标, int 参数_宽度, int 参数_高度,
			int 参数_背景色 = -1, int 参数_前景色 = -1, int 参数_标志 = 0);
	protected:
		static void  WINAPI zyLmageList_Destroy(resObject* obj);

	};

}

